Skip to content

Render account sheet and detail modal in-tree for edge-to-edge#13

Merged
dfalling merged 5 commits into
mainfrom
account-menu
May 30, 2026
Merged

Render account sheet and detail modal in-tree for edge-to-edge#13
dfalling merged 5 commits into
mainfrom
account-menu

Conversation

@dfalling
Copy link
Copy Markdown
Owner

Summary

  • Replace React Native Modal with in-tree absolute overlays for both the account sheet (App.tsx) and the element detail modal (ElementDetailModal.tsx).
  • On RN 0.85 + Android 15, Modal renders in a separate window whose statusBarTranslucent/navigationBarTranslucent props don't reliably draw behind the system bars. This left the account scrim not covering the status bar, the sheet stopping above the nav buttons, and the detail modal's header/footer not matching the edge-to-edge map.
  • Rendering in-tree lets both overlays share the map's edge-to-edge window so the scrim and white backgrounds extend behind the status and navigation bars.
  • Preserve the slide animation (via Animated) and hardware-back handling that Modal previously provided; safe-area insets still pad content clear of the bars.

Test plan

  • bunx tsc --noEmit, bun run lint, bun run test all pass.
  • Verified on-device: account sheet scrim now covers the status bar and the sheet fills behind the nav buttons; detail modal header/footer are white edge-to-edge.

dfalling and others added 5 commits May 27, 2026 23:22
Top-right avatar opens a bottom sheet with the signed-in email and a
single Log out action. Drops the map overlays' bottom-bar clearance now
that nothing sits there.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
React Native's Modal renders in a separate window whose
statusBarTranslucent/navigationBarTranslucent props don't reliably draw
behind the system bars on RN 0.85 + Android 15. That left the account
scrim not covering the status bar and the sheet stopping above the nav
buttons, and the detail modal's header/footer not matching the
edge-to-edge map.

Replace both Modals with in-tree absolute overlays so they share the
map's edge-to-edge window and extend behind the status and navigation
bars. Preserve the slide animation (Animated) and hardware-back handling
the Modal previously provided.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Both the account menu and element detail screen reimplemented the same
workaround for RN Modal's separate-window/edge-to-edge bug (in-tree
absolute mount, slide animation, hardware-back handling, pointer-event
gating). Consolidate that into a single Sheet primitive with a bottom
and fullscreen variant so the edge-to-edge knowledge lives in one place
and future sheets don't reintroduce the bug.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dfalling dfalling merged commit 89922ee into main May 30, 2026
2 checks passed
@dfalling dfalling deleted the account-menu branch May 30, 2026 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant